package com.naiterui.ehp.bp.bo.emr.params;

import java.io.Serializable;
import java.util.List;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 填写病历VO
 *
 * @author lichaopi
 * @since 1.0.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel(value = "DrCaseParams", description = "填写病历VO")
public class DrCaseParams implements Serializable {

    private static final long serialVersionUID = -1226164864807927406L;

    /**
     * 医生id
     */
    @NotNull(message = "医生ID不能为null")
    @ApiModelProperty(value = "医生id")
    private Long doctorId;

    /**
     * 患者id
     */
    @NotNull(message = "患者ID不能为null")
    @ApiModelProperty(value = "患者id")
    private Long patientId;

    /**
     * 就诊人id
     */
    @NotNull(message = "就诊人ID不能为null")
    @ApiModelProperty(value = "就诊人id")
    private Long inquirerId;

    @ApiModelProperty(value = "问诊类型, 1:图文咨询，2：视频咨询")
    private Long consultType;

    @ApiModelProperty(value = "就诊人关系")
    private Integer relation;

    /**
     * 患者姓名:就诊人姓名
     */
    @NotNull(message = "患者姓名不能为null")
    @ApiModelProperty(value = "患者姓名")
    private String patientName;

    /**
     * 患者性别:0:女,1:男
     */
    @NotNull(message = "患者性别不能为null")
    @ApiModelProperty(value = "患者性别:0:女,1:男")
    private Integer patientGender;

    /**
     * 年龄
     */
    @NotNull(message = "患者年龄不能为null")
    @ApiModelProperty(value = "年龄")
    private Integer age;

    /**
     * 显示年龄
     */
    @NotEmpty(message = "年龄单位不能为null")
    @ApiModelProperty(value = "年龄单位:岁，个月，周")
    private String ageUnit;

    @NotEmpty(message = "年龄不能为null")
    @ApiModelProperty(value = "显示年龄")
    private String ageStr;

    /**
     * 主诉
     */
    @ApiModelProperty(value = "主诉")
    private String mainComplaint;

    /**
     * 现病史
     */
    @ApiModelProperty(value = "现病史")
    private String presentDisease;

    /**
     * 既往史
     */
    @ApiModelProperty(value = "既往史")
    private String pastHistory;

    /**
     * 体温
     */
    @ApiModelProperty(value = "体温")
    private Double temperature;

    /**
     * 体重
     */
    @ApiModelProperty(value = "体重")
    private Double weight;

    /**
     * 心率
     */
    @ApiModelProperty(value = "心率")
    private Integer heartRete;

    /**
     * 收缩压
     */
    @ApiModelProperty(value = "收缩压")
    private Integer systolic;

    /**
     * 舒张压
     */
    @ApiModelProperty(value = "舒张压")
    private Integer diastole;

    /**
     * 更多检查结果
     */
    @ApiModelProperty(value = "更多检查结果")
    private String moreExamin;

    @ApiModelProperty(value = "其它检查中的alt")
    private Integer alt;

    @ApiModelProperty(value = "其它检查中的ast")
    private Integer ast;

    @ApiModelProperty(value = "其它检查中的hbvDna")
    private String hbvDna;

    @ApiModelProperty(value = "诊断列表")
    private List<String> diagnosisList;

    /**
     * 医嘱小结
     */
    @ApiModelProperty(value = "医嘱小结")
    private String doctorOrder;

    /**
     * 是否有复诊时间（1有，2无）
     */
    @NotNull(message = "复诊时间不能为null")
    @ApiModelProperty(value = "是否有复诊时间（1有，2无）")
    private Integer revisitFalg;

    /**
     * 几天后复诊
     */
    @ApiModelProperty(value = "几(天，周，月)后复诊")
    private Integer revisitNumber;

    /**
     * 复诊时间单位(天，周，月)
     */
    @ApiModelProperty(value = "复诊时间单位(天，周，月)")
    private String revisitDateUnit;

    /**
     * 图片列表
     */
    @ApiModelProperty(value = "图片列表")
    private List<String> imgList;

    /**
     * 模板类型1:通用模板,2:肝病模板,3:通过量表模板
     */
    @NotNull(message = "模板类型不能为null")
    @ApiModelProperty(value = "模板类型1:通用模板,2:肝病模板,3:通用量表模板")
    private Integer templateType;



    /**
     * 量表编号（或加密编号)
     */
    @ApiModelProperty(value = "量表编号")
    private String extBizId;

    @ApiModelProperty(value = "模板id")
    private Long templateId;
    /**
     * 推荐id:前端不需要传bo之间需要
     */

    private Long recommendId;

    /**
     * 治疗意见
     */
    @ApiModelProperty("治疗意见")
    private String treatmentOptions;

    @ApiModelProperty(value = "阳性体征")
    private String positiveSigns;

    @ApiModelProperty(value = "必要的阴性体征")
    private String negativeSigns;

    @ApiModelProperty(value = "过敏史")
    private String allergy;

    @ApiModelProperty(value = "家庭史")
    private String pastFamily;

    /**
     * 月经状态(0,未初潮、1,已初潮、2,已绝经)
     */
    @ApiModelProperty(value = "月经-月经状态(0,未初潮、1,已初潮、2,已绝经)")
    private Integer status;
    /**
     * 初潮年龄
     */
    @ApiModelProperty(value = "月经-初潮年龄")
    private Integer firstAge;
    /**
     * 月经周期
     */
    @ApiModelProperty(value = "月经-月经周期")
    private Integer cycle;
    /**
     * 行经天数
     */
    @ApiModelProperty(value = "月经-行经天数")
    private Integer processDays;
    /**
     * 是否痛经
     */
    @ApiModelProperty(value = "月经-是否痛经(0,否;1,是)")
    private Integer dysmenorrhea;

    /**
     * 痛经部位
     */
    @ApiModelProperty(value = "月经-痛经部位")
    private String part;
}
